function EventBus () {
	this.msgList = {};
}
EventBus.prototype.$on = function (msgName, fn) {
	if(this.msgList[msgName]){
		this.msgList[msgName].push(fn);
	}else{
		this.msgList[msgName] = [fn];
	}
};
	
EventBus.prototype.$one = function (msgName, fn) {
	this.msgList[msgName] = [fn];
};

EventBus.prototype.$emit = function (msgName, arg) {
	if(this.msgList[msgName]){
		this.msgList[msgName].forEach(fn => {
			fn(arg);
		})
	}else{
		return;
	}
};

EventBus.prototype.$off = function (msgName) {
	if(this.msgList[msgName]){
		delete this.msgList[msgName];
	}
}

exports.eventBus = new EventBus();